package com.jinzhu.common.utils;

import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * 带返回值的浅拷贝工具
 *
 * @param <T> 原对象
 * @param <E> 复制后对象
 * @author jz
 */
public class Cp<T,E> {

    /**
     *  对象浅拷贝
     * @param t
     * @param e
     * @param <T>
     * @param <E>
     * @return
     */
    public static<T,E> E copyProperties(T t,E e){
        BeanUtils.copyProperties(t,e);
        return  e;
    }

    /**
     * 集合浅拷贝
     * Cp.copyList(list, new ArrayList<T>());
     * @param list1
     * @param list2
     * @param <T>
     * @param <E>
     * @return
     */
    public static<T,E> List<E> copyList(List<T> list1, ArrayList<E> list2) {
        list2.addAll((Collection<? extends E>) list1);
        return list2;
    }
}
